package com.mashuai.utils.toolkit.core.msExcel;

import com.mashuai.utils.base.MsIocUtils;
import com.mashuai.utils.toolkit.achieve.ExcelInvokeCore;
import com.mashuai.utils.toolkit.core.msExcel.dto.MsDynamicExportDto;
import com.mashuai.utils.toolkit.core.msExcel.dto.MsImportDto;
import com.mashuai.utils.toolkit.core.msExcel.dto.MsTemplateExportDto;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;

/**
 * @ClassName: MsExcelInvoke
 * @Description: 调用excle相关工具方法
 */
public class MsExcelInvoke {
    private static ExcelInvokeCore excelInvokeCore = MsIocUtils.getBean(ExcelInvokeCore.class);

    /**
     * 动态导出
     *
     * @param response
     * @param dto
     * @return
     * @author mashuai
     */

    public static void dynamicExport(HttpServletResponse response, MsDynamicExportDto dto) throws Exception {
        excelInvokeCore.dynamicExport(response, dto);
    }

    /**
     * 模板导出
     *
     * @param response
     * @param dto
     * @return
     * @author mashuai
     */

    public static void templateExport(HttpServletResponse response, MsTemplateExportDto dto) throws Exception {
        excelInvokeCore.templateExport(response, dto);
    }

    /**
     * 导入数据解析，要求必须有一个实体类，目的是为了便于后期人员维护，和解析数据方便
     *
     * @param file
     * @param dto  {"targetParam":"","headRow":头部占几行}
     * @return 返回数据取决于用户自己定义
     * @author mashuai
     */

    public static Object importExcel(MultipartFile file, MsImportDto dto) throws Exception {
        return excelInvokeCore.importExcel(file, dto);
    }
}
